//
//  EmoticonPackageModel.swift
//  01-keyBoard
//
//  Created by Leon on 15/10/23.
//  Copyright © 2015年 Leon. All rights reserved.
//

import UIKit

// MARK: - 表情包模型
class EmoticonPackageModel: NSObject {

 /// 表情包路径
    var id: String?
 /// 表情包名称
    var group_name_cn: String?
 /// 表情数组 - 懒加载能够保证在使用的时候,数组已经建立
    lazy var emoticons = [EmoticonModel]()
    
    ///  MARK: - 构造方法
    init(dict:[String: AnyObject]) {
        super.init()
        
        id = dict["id"] as? String
        group_name_cn = dict["group_name_cn"] as? String
        
        // 1 获得字典数组
        if let array = dict["emoticons"] as? [[String: AnyObject]] {
            // 计数
            var index = 0
            
            // 2 遍历数组
            for var d in array {
                
                // 判断PNG是否有值
                if let png = d["png"] as? String, dir = id {
                    
                    d["png"] = dir + "/" + png
                }
                
                emoticons.append(EmoticonModel(dict: d))
                
                // 每页最后一个位子加(20个) 删除按钮
                index++
                if index % 20 == 0 {
                    emoticons.append(EmoticonModel(isRemoved: true))
                }
                
            }
        }

        addEmptyButton()
    }
    
    ///
    private func addEmptyButton() {
    
        // 取余数
        let count = emoticons.count % 21
        
        // 只要有数 且 余数 == 0， 就添加按钮
        if emoticons.count > 0 && count == 0 {
            return
        }
        // 添加空白表情
        for _ in count..<20 {
            emoticons.append(EmoticonModel(isEmpty: true))
        }
        
        // 最末尾添加一个删除按钮
        emoticons.append(EmoticonModel(isRemoved: true))
        
    }
    
    override var description: String {
        let keys = ["id", "group_name_cn", "emoticons"]
        return dictionaryWithValuesForKeys(keys).description
    }
}
